# -*- coding:utf-8 -*-
# @Time:2024/4/1921:01
# @Author:miuzg
# @FileName:new test2.py
# @Software:PyCharm

from bs4 import BeautifulSoup

html = """
<div class="wrapper">
    <ul id="site - name">
        <li class="item-1"><a href="https://tieba.baidu.com/index.html"title=" 百度 "> 百度 </a></li>
        <li class="item-2"><a href="https://www.baidu.com/"title=" 百度贴吧 "> 百度贴吧 </a></li>
        <li class="item-3"><a href="https://www.taobao.com/"title=" 淘宝 "> 淘宝 </a></li>
        <li class="item-4"><a href="https://www.jd.com/"title=" 京东 "> 京东 </a></li>
    </ul>
</div>
<p id="hot"> 多喝热水哈 </p>
"""

# 生成soup对象/解析器  BeautifulSoup(要处理的数据，"解析器")
soup = BeautifulSoup(html, "lxml")

###################### string #########################
# 获取第一个li里面的内容
print(soup.li.string)
print('-'*50)

# 找到类名为item-4的li标签 class后面要写一个下划
ul = soup.ul.strings  # 获取ul里面的子元素内容
ul_stripped = soup.ul.stripped_strings  # 获取ul里面的子元素内容并去除空行
for i in ul:
    print(i)
print('-'*50)

###################### find #########################
# 直接按照标签输出，默认是拿到第一个a标签元素
print(soup.a)
print('-'*50)
print(soup.a['href'])
print('-'*50)

# 找到class名为item-4的li标签(class要用下划线原因是因为class是关键字)
print(soup.find('li',class_="item-4"))
print('-'*50)

# 找到所有li标签
print(soup.find_all('li'))
print('-'*50)

# 只要两个li标签
print(soup.find_all('li',limit=2))
print('-'*50)


###################### select #########################

# 通过类名获取
print(soup.select('.item-1'))
print('-'*50)

# 通过id获取
print(soup.select('#hot'))
print('-'*50)

# 组合选择器
print(soup.select('.item-2>a')[0].string)
print('-'*50)

# 属性选择器
print(soup.select('a[href="https://www.jd.com/"]'))
print('-'*50)